23

» WarCraft 3 / Морф удаляет способность с эффектом героя!

Похожие вопросы:

ответ
Custom, Никак, HeroAbilityList низя править во время игры, делайте несколько героев с разными наборами скиллов на изучение, а потом морфите.
Как правильно морфить можно найти инфу тут.
Перед морфом желательно убирать все предметы из инвентаря.

23

» WarCraft 3 / Погодные эффекты

Похожие вопросы:

ответ
Утечки в триггерах, надо код карты исправить.
ответ
Кристофер, честно говоря сам с ними не работал, но на сайте была статья, почитай - самому интересно, что выйдет)Попробую сам может, как время будет
ответ
Maniac_91, область это хэндл а значит утекает
максимального количества областей ограничивается количеством оперативной памяти (до 2 гигов вроде) и максимальным количеством хэндлов (2 в 32 степени)
больше ни чем
EnergyFrost:
Максимум что тебя ожидает- лаги, которые ты получишь из-за утечек, работая с этими областями. Так что старайся не наплодить утечек и все будет окей.
как правило работа со статичными областями не вызывает утечек (если их не копировать)
ограничений на декорации тоже нету к слову (если не юзать устаревший редактор)
ответ
Мне что-то такое помнится, что там вроде возможен только один погодный эффект на область. Попробуй создать ещё одну область и там уже создавай второй дождь.

23

» WarCraft 3 / Проблема с моделью

Похожие вопросы:

ответ
Свершылось... Заработало...
Вот оно.

Описание проверки:
  • проверил в редакторе, он просто вылетает при попытке настройки в РО;
  • переконвертировал в .mdl и осмотрел, все норм;
  • открыл в War3ModelEditore, удалил лишние текстуры, материалы, настроил анимации геосетов;
  • профит.
Если кто не верит, вот скрин.
ответ
У модельки нет анимации смерти - удаляй юнит- Боевая единица А unit dies(умирает) - remove dying unit from the game
ответ
тему можно закрывать. ответ сам нашел.
ответ
советую переименовать модель\заребутить комп
текстуры стандартные юзал, я так понимаю
ответ
Используй GMax, тот же самый 3ds max, только бесплатный.

23

» WarCraft 3 / Memory Hack

Похожие вопросы:

ответ
У меня всё работает, просто прописываю эти нативки в коде самой карты, вот карта, здесь и урон изменяется.
Чтобы typecast работал в JNGP нужно создать аж 3 переменных!
Какие три? Я только две использую:
integer array l__A
integer A
ответ
ну есть такая возможность
в [[gameClass2]+0x1B4]+0x14 хранится адрес виджета под мышкой. естественно, деревья не в счет, может, только у рабочих они учитываются
RMem(RMem(RMem(gameClass2)+0x1B4)+0x14)==address
ответ
а, я думал, ты хочешь узнать тип объекта по его адресу. конвертировать в джасс сложно, не минуту доставать, позже
globals
integer l__Int2Unit
integer pGetHandleIDStackCounter=GameDLL+0x3A8060//26
integer pConvertAddressToHandleId=GameDLL+0x430C80//26
endglobals
function setInt2Unit takes integer i returns nothing
set l__Int2Unit=i
return Prevents JassHelper from inlining this function
endfunction
function ConvertUnitAddressToHandleID takes integer address returns integer
local integer a=CallThisCallWith1Args(pGetHandleIDStackCounter,RMem(GameState))
return CallThisCallWith3Args(pConvertAddressToHandleId,a,address,0)
endfunction
function Typecast4 takes nothing returns nothing
local unit l__Int2Unit
endfunction
# +nosemanticerror
function I2Unit takes integer i returns unit
call setInt2Unit(ConvertUnitAddressToHandleID(i))
return l__Int2Unit
endfunction
не забудь уточнить, что ВСЕ используемые здесь адреса НЕ делены на 4, или умножай их сам, если делились. GameState вроде был разделен в паблике.
ответ
спутал, эта фунция прячет хендл, а не рисовку обеспечивает
function IsFlagBitSet takes integer flags, integer bit returns boolean
	if bit!=0 then
		return flags/bit*0x80000000 != 0
	endif
	return false
endfunction

function RMem takes integer addr returns integer
	if addr<0 or addr>0x7FFFFFFF then
		return 0
	endif
	return Memory[addr/4]
endfunction

function AddAlwaysVisibleFlag takes unit u returns nothing
	local integer a=ConvertHandle(u)
	if a>0 and IsFlagBitSet(RMem(a+0x20),0x10)==false then
		call WMem(a+0x20,RMem(a+0x20)+0x10)
	endif
endfunction
вместо юнита можно вроде любой виджет, просто смени входящий тип и проверь

23

» WarCraft 3 / Обработка предметов

Похожие вопросы:

ответ
аналогичная болезнь ставить несколько антивирусов полагая что они защитят вместе лучше...
  1. используйте что-то одно
  2. ???
  3. профит

23

» WarCraft 3 / Отряд

Похожие вопросы:

ответ
у отряда мало возможности, если бы былобы такое то двигал бы через отряд..
Чего? Нет никакой разницы, что ты каждого юнита занесешь в массив, и будешь перебирать его циклом, что ткнешь Pick every unit in (unit group) and do multiple actions и выполнишь точно такой же цикл.
Я предпочитаю отряд.
Да и таймер нахер, если честно. Коли тебе в любом случае придется работать с событиями с малым периодом, гораздо удобнее закрепить за каждым юнитом вещественную переменную, отвечающую за время движения, и каждые 0.02 отнимать от нее 0.02.
Если не понял, пиши, я скину пример.
ответ
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка
ответ
запомнить всех выбранных, затем очистить эту группу, добавить сначала твоего героя, а затем всех остальных

23

» WarCraft 3 / Общий вид

Похожие вопросы:

ответ
Сам MdlVis где лежит?
ответ
Возможно ты пересохранил текстуру в блп-лабе, поставив неправильные настройки альфа-канала при сохранении
ответ
Э-э-э-э... "В заказ моделей"?
ответ
NekoriDes, вот я и говорю что откуда афтару знать что он не в союзе
есть куча параметров союза если что
ответ
Steal nerves:
filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда

23

» WarCraft 3 / Урон

Похожие вопросы:

ответ
потому что баш дает дополнительный урон при срабатывании, а не на постоянной основе
ответ
Забыл про местный гугл.
Закрыто.
ответ
Viktor19, делай триггерно
систем отлова и блока урона 100500
ответ
прирост брони при порче, игровые константы, как то так

23

» WarCraft 3 / Панель приказов

Принятый ответ
Похожие вопросы:

ответ
Melissa:
Только через "систему 12 скиллов" или как там она называлась.
Вот короче xgm.guru/files/100/122871/comments/269673/12abilitiesHPnormal.w3...
Ловить приказы и использования способностей и отдавать соответствующие команды юниту.
Спасибо,а может в нутри самого txt .написать как нибудь имя или почему нельзя при импорте написать какому юниту принадлежит txt?
ответ
SсRealm, ,без пруфа эт фантазия, соряново. Если бы была карта, все бы уже сказали, как это делается.
ответ
UnitRemoveAbility(whichUnit, 'ARal')
где whichUnit - твое здание
ответ
Можно дать юниту какую-нить абилку и все время через Force UI Key заставлять игрока ее нажимать пока этот юнит выбран
И как только он эту абилку использует, значит меню закрыто

23

» WarCraft 3 / Не работает триггер выбора

Похожие вопросы:

ответ
Второй комп сломан поэтому проверить не могу, почему у меня подозрение, что оно должно работать....
Хотя могу и ошибаться, нормально делал карты года 2 назад.
ответ
Не юзай TriggerSleepAction и будет тебе счастье. Особенно когда юзаешь глобальные переменные, вполне вероятно, что конфликт
ответ
Alexander69, xgm.guru/p/wc3/optimisations
внимательно прочти то что там написано
особенно про переменные
если коротко то объект не может быть удалён из памяти пока используется (хранится в переменных/хэше/кэше)
ответ
Diaboliko, у предметов с этим бага
юзай юнитов
с ними намного проще

23

» WarCraft 3 / Утечки

Похожие вопросы:

ответ
Какой ужас
Делай вот так.
бронепоезд
создать.
направить на 128 точек наверх(90)
сделать неперманентным
текст удалится через 3 секунды
текст затухнет до 100% прозрачности через 3 секунды
Вот чёрт. не успел приплюснуть к посту.
ответ
Steal nerves:
Да. При чем две.( Position of Dying unit ).
скрин скинул выше, но там ошибка. И если раскрыть, то обнаруживается еще одна утечка: на гуи Point(0,0), а на jass эта команда называется по-другому Location(0,0), эта функция создает точку
раскрыть
попробуй раскрутить, и использовать эту
native CreateItem takes integer itemid, real x, real y returns item
через CS: call CreateItem( id, GetUnitX(u), GetUnitY(u))
где id - ид-номер типа предмета, u - юнит. Ввести тип предмета, и юнита нужно.
можно еще запомнить как-то, чтобы к предмету как-то обращаться
через CS: set it = CreateItem( id, GetUnitX(u), GetUnitY(u))
где it - переменная предмета. Объявить переменную и обращаться
ответ
Нет, 100 раз писали Player не вызывает утечек, их не нужно обнулять.
Бот выдал ссылку на статьи, прошу прочитать...
ответ
если их мало, нет
если создается 100500 точек, юнитов, спецэффектов и прочей шелухи, да

23

» WarCraft 3 / Как сделать Загрузочный экран?

Похожие вопросы:

ответ
Я ж те писал. Поле описания карты оставляешь пустым. Всё описание вставляешь в картинку загрузочного экрана
Но надо что бы был текст на загрузочном экране(который настраивается через редактор)
Больше ничего не надо, нет? Текст на картинке делается в 20 секунд. Если бы всё в этом мире делалось через фразу "не хочу"
ответ
"Сохраните картинку в формате 32 бита с расширением .tga, импортируйте изображение с помощью Import Manager'a, два раза кликните на файл в окне импорта и сотрите весь путь до названия файла. Далее само название поменяйте на war3mapPreview.tga"
/
статья: xgm.guru/forum/showthread.php?t=615, п.3.5.
ответ
Она должна быть в корневой папке варкрафта, лично у меня так. Попробуй переместить если она отдельно. Или скачай заново, может какойнибудь файл пропал, всякое бывает, вирусы там и тд
ответ
То есть как добавить текстуру к модели ,через War3ModelEditor
Читай гайды, мои уроки просто нереально дороги...
То есть как добавить текстуру к модели ,через War3ModelEditor
Ой друже и что тебе сказать на твою задумку?
  1. невозможно применить твою задумку к действительности по тому факту что ты не сможешь использовать данную модель в виде загрузочного экрана: 1а. стандартная модель загрузочного экрана не имеет такой функции как камера расположено очень близко к центру начала координатной сетки любой модели, а именно модель должна быть мизерная (крошечная, маленькая), 2а. даже если получится, есть заминка при анимации модели, анимация будет проходить только после загрузки самой карты и только тогда будет включена анимация модели.
  2. Много технических огрехов в выполнении который способен исправить только гигант моделе-строения типо 3д Макс и аналоги.

23

» WarCraft 3 / Автоматический выбор

Похожие вопросы:

ответ
На ГУИ это делается без всякого custom script, ищешь раздел Игра и там Force UI Key.
Вообще, в ГУИ же поиск текста есть. Мог бы сам найти.
ответ
Сценарий/Свойства клана, поставь галочки "Нестандартные кланы" и "Фикс. параметры игрока".

23

» WarCraft 3 / Проверка типа урона

Похожие вопросы:

ответ
Я расскажу тебе чудо: Мертвые не умеют наносить урон. Что из этого следует? Из этого следует, что весь спеллдемедж должен наносить не герой, а даммик, стоящий где то на респе, который никогда не умрет.
А из этого следует, что единственный урон, который сможет нанести герой - физический.
Маня, переделовай.
ответ
Я использую следующий костыль: урон от заклинаний наносится только от лица дамика, который имеет соответствующую способность для проверки. Пассивку, например с названием "Урон - огонь". Тем самым, можно отследить тип полученного урона.

23

» WarCraft 3 / Spells

Похожие вопросы:

ответ
Аура не сразу вешается на юнита, нужна задержка.
ответ
гуи
ответ
просто вытащить и вставить - нельзя
надо рассмотреть всего героя и/или весь скилл
разобраться как он работает, что нужно для него
и только потом пересобирать его в своей карте
ответ
Реализовать триггерно. Если это не очевидно - значит твои навыки не позволяют сделать этого. Однако спелл простой - поищи где-нибудь в заклинаниях на заказ или на хайве.
ответ
проверь настройки A01P, возможно, там кривые данные выше 3-го уровня

23

» WarCraft 3 / Проблема с экранами загрузки

Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.

23

» WarCraft 3 / Ауры

Похожие вопросы:

ответ
Аура торнадо.
Аура выносливости с отрицательными значениями и врагами в допустимых целях.
ответ
Нет. Либо процент, либо интовое, либо вещественное округленное. Если надо вещественное неокругленное, то забивай вручную
ответ
Уже есть самостоятельная идея... По похожему принципу уже действует другой спелл.
Короче, изучается сразу аура, без всяких извращений. А по нажатию кнопки "S" - стоп - она блокируется для игрока и юниту, которому нажали, выдается абила-пустышка, типа аура не действует, снова S - активируется обратно.
Минусы: ни один другой такой же герой того же игрока, пока отключена аура, выучить эту ауру не сможет в это время; иногда приказ стоп действует без ручной активации, что немного неприятно. Но это реально НЕ критично (героев одинаковых у одного игрока почти никогда не бывает, а нажать стоп не проблема, если не задизейблен, ну а что задизейбленным не можешь переключать ауру - фича).
Вот только надо будет еще учесть маловероятный, но все же возможный факт, что юнит с отключенной аурой сможет вообще перестать существовать и тогда ее включить получится в принципе невозможно. Учту периодиком...
Зато ГИГАНТСКАЯ экономия усилий при создании и НИКАКОГО прелоада не надо (в принципе 1-уровневую абилу-пустышку "аура отключена" уж можно не прелоадить, хотя можно и прелоаднуть).
ответ
Триггерно нет необходимости делать. Берешь в РО любую ауру на увеличение скорости перемещения и ставишь отрицательное значение этой скорости через нажатие клавиш [Shift+Enter]

23

» WarCraft 3 / Кислотная бомба

Похожие вопросы:

ответ
идея неплохая, если не считать, что заклинание будет диспеллить эффект похожего заклинания.
Например если юнит в стане от молота бурь, то молот бурь-даммикаст снимет бафф с него. С кислотной бомбой и т.п. однозначно диспеллит, насчёт молота - скорее всего.
Нет, станы перебивают тока сильный, слабого. Ну или есть большое отличие в уровнях. Аксид бомбы будут перебивать если урон выше, а так просто продливать бафф, чертики тоже самое.
Кстати да, забыл написать, длительность 0.01, бафф сразу же после проверки удаляем.
Если вы юзайте аксид бомбу для нанесения урона, придется наносит урон триггерно.
Кстати, большинство скиллов вроде аксид бомбы или чертика работают так.
Сначала 0.00 ед. урона, после бафф, после урон указанный в поле способности.
Но молот бурь работает иначе, сначала урон указанный в поле способности, после 0.00 ед. урона и бафф стана.
ответ
Ancient, зачем дезинформируешь. Ответ - нельзя. Можно стакать ауры с разными бафами, хоть до посинения. Смена бафа же кислотной бомбе, да даже удаление оного - проблему не решит.
Ancient:
на основе другой способности
Не стоит кровосмешение устраивать.
Если ты поставишь к примеру лечилке-предмету и исцеляющему газу 1 и тот же баф - регенерация - то игра будет вылетать с фаталом
ответ
Viktor2, а ты реально импортировал все текстуры (в кол-ве 21шт ) в карту? Если хотя бы одну забыл -модель не будет отображаться.

23

» WarCraft 3 / Кости

Похожие вопросы:

ответ
Не важно, как будет называться кость. Главное, чтобы к ней были прикреплены все вершиныы.
Иногда встречаются модели и без костей вовсе, но они могут неправильно отображаться в самой игре или редакторе, так что лучше все же создать косточку)
ответ
Obelick, цитирую статью:
  1. Проблемы с видимостью
Бывает необходимо скрыть в части анимаций какую то поверхность, например останки (скелет). Вы спокойно выбираете эту поверхность, и начинаете в каждой анимке в первом кадре выключать видимость (необходимо и достаточно выключать - включать видимость именно в первом кадре анимации), чисто случайно переходите ко второму кадру - ба!, видимость включилась, и так далее, вы пытаетесь выключить видимость во всех кадрах нужных анимаций, и совершенно зря.
Нужно просто открыть сохраненную модель с выключенной в первых кадрах анимаций видимостью, затем открыть ее в War3ME, открыть вкладку ОКНА - РЕДАКТОР АНИМАЦИЙ ПОВЕРХНОСТЕЙ, выбрать Geosetanimation, в которой Альфа анимирована (стоит галочка). Щёлкаем по кнопке Альфа, открывается список с адресами. адр еса должны идти в порядке возрастания, а у вас скорее всего запись 0 :0 или 0 :1 находится где то в середине списка. Просто удаляем эту запись и ставим ее в самом начале списка. Проверяем правильный порядок адресов, и если надо, то исправляем. После двоеточия должна стоять цифра 0 или 1, все цифры, отличные от этих, необходимо переправить на 0. Проверяем анимации, с видимостью все должно быть в порядке.
Такие же списки видимости бывают и у костей, и у эффектов, и у текстур, советую также их проверять, если занимались анимированием этих объектов.
ответ
В редакторе анимаций вкладка "скелет".
Создать крепление (Ctrl+A) и назвать так, как называется точка приложения, но в конце добавить " Ref".
ответ
Для ворот можно самому довольно быстро новую анимацию сделать. А ту, что не устраивает удалить.
ответ
А вообще, ответом на подобные вопросы в 2017 году уже должны стать подобные ссылки: www.youtube.com/watch?v=pJNPBW4QGhg&t=1s

23

» WarCraft 3 / Почему дропает?

Похожие вопросы:

ответ
Во втором триггере меняем Triggering (переключающий) (который в данном случае камень) на Attacking и все работает.
А, и еще событие не "получает урон" а "атакован"

23

» WarCraft 3 / Как открыть модель?

Похожие вопросы:

ответ
Вот держи готовый результат.
ответ
мдлвиз вроде умеет их
или 3д макс
а вообще
ответ
mdlVis портит нормали и даже фаталит из-за нормалей. Бывает, приходится обнулять нормали, чтобы mdlvis смог открыть модель.
Способ есть.
  1. В War3ModelEditor сохранить копию модели в текстовом формате mdl.
  2. Отредактировать модель в mdlVis и сохранить в текстовом формате mdl.
  3. Из не редактированной копии перекинуть нормали для каждой поверхности.
  4. Р-ом War3ModelEditor конвертировать в mdx.
Судя по тому, что на скринах нормалей не видно, автору вопроса все таки нужно "Ищи ответ по запросу нормалей вершин."
ответ
quq_CCCP, модели в длл не хранят(только если наркоманы ибо придётся заставить вар3 видеть эти модели)
teleport, mix файлы бывают 2 типов - архив(mpq) и библиотека(dll)
в твоём случае это архив
открывать mpq архиватором
ищи на этом сайте либо в гугле